home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue34 / clinic / KeyViolU.pas < prev    next >
Pascal/Delphi Source File  |  1998-02-06  |  1KB  |  48 lines

  1. unit KeyViolU;
  2.  
  3. interface
  4.  
  5. uses
  6.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  7.   Forms, Dialogs, Grids, DBGrids, DB, DBTables;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     DataSource1: TDataSource;
  12.     Table1: TTable;
  13.     DBGrid1: TDBGrid;
  14.     procedure FormCreate(Sender: TObject);
  15.   public
  16.     procedure DoException(Sender: TObject; E: Exception);
  17.   end;
  18.  
  19. var
  20.   Form1: TForm1;
  21.  
  22. implementation
  23.  
  24. uses
  25.   DbiErrs;
  26.  
  27. {$R *.DFM}
  28.  
  29. procedure TForm1.DoException(Sender: TObject; E: Exception);
  30. begin
  31.   if (E is EDBEngineError) and (EDBEngineError(E).Errors[0].ErrorCode = DbiErr_KeyViol) then
  32. {  if (E is EDBEngineError) and 
  33.     (EDBEngineError(E).Errors[0].ErrorCode = ErrBase_Integrity + ErrCode_KeyViol) then}
  34. {  if (E is EDBEngineError) and
  35.      (EDBEngineError(E).Errors[0].Category = ErrCat_Integrity) and
  36.      (EDBEngineError(E).Errors[0].SubCode = ErrCode_KeyViol) then}
  37.     Caption := E.Message
  38.   else
  39.     Application.ShowException(E);
  40. end;
  41.  
  42. procedure TForm1.FormCreate(Sender: TObject);
  43. begin
  44.   Application.OnException := DoException;
  45. end;
  46.  
  47. end.
  48.